/*
  操作文件模块
*/
var fs = require('fs');

// 定义个盛放文件的数组
var fileList=[];

// 遍历指定文件夹中所有文件的方法
function walks(path){
  var dirList = fs.readdirSync(path);
  dirList.forEach(function(item){
    if(fs.statSync(path + '/' + item).isFile()){
      fileList.push(path + '/' + item);
    }
  });
}

// 初始状态
console.log('正在处理,请稍后...');
function ergodic(){
  fileList=[];
  walks('./ModWebPortalJs/dist');
  for(var i=0;i<fileList.length;i++){
    // 获得需要操作的 html 文件
    if(fileList[i].indexOf('index.html')!=-1){
      ergodic2(fileList[i]);
      continue;
    }
    // 获得需要操作的 js 文件
    if(fileList[i].indexOf('main.')!=-1&&fileList[i].indexOf('bundle.js')!=-1){
      ergodic3(fileList[i]);
      continue;
    }
  }
}
// 处理 index.html 文件
function ergodic2(indexHtmlFile){
  if(indexHtmlFile){
    let opath = indexHtmlFile;
    // 读取文件  路径/编码 注：这里读写文件使用同步
    let data = fs.readFileSync(opath, 'utf-8');
    if(data.indexOf('{% load static %}') != -1){
      console.log('index.html 已经处理过了！');
      return;
    }
    // 获得需要替换的 msl 信息
    let result = data.substring(data.indexOf('mslData=')+9, data.indexOf('3923b"}')+7);
    // 开始替换
    let dataText = data.replace(`<head>`, `<head>{% load static %}`)
                       .replace(`<base href="/">`, `<base href="/MedicalOnDemand/WebPortal/Console/">`)
                       .replace(`<link href="`, `<link href="{% static 'MedicalOnDemand/css/`)
                       .replace(`" rel="stylesheet"`, `' %}" rel="stylesheet"`)
                       .replace(/\"text\/javascript\"\ssrc=\"/g, `"text/javascript" src="{% static 'MedicalOnDemand/js/`)
                       .replace(/\"><\/script>/g, `' %}"></script>`)
                          .replace(result, `{"msl_id": "{{ msl_id }}",
                                            "msl_mudid": "{{ msl_mudid }}",
                                            "msl_name": "{{ msl_name }}",
                                            "msl_type": "{{ msl_type }}",
                                            "msl_ta_code": "{{ msl_ta_code }}",
                                            "msl_ta_name": "{{ msl_ta_name }}",
                                            "msl_webex_url": "{{ msl_webex_url }}"}`);
    // // 将修改后的文件写入源文件
    fs.writeFileSync(opath, dataText, 'utf-8');
    // // 完成
    console.log('恭喜，index.html 修改完成！！！');
  }else{
    console.log('没有找到需要操作的 index.html 文件 文件！');
  }
}
// 处理 index.html 文件
function ergodic3(mainJsFile){
  if(mainJsFile){
    let opath = mainJsFile;
    // 读取文件  路径/编码 注：这里读写文件使用同步
    let data = fs.readFileSync(opath,'utf-8');
    if(data.indexOf('https://s3-ap-southeast-1.amazonaws.com/mod-') != -1){
      console.log('main.js 已经处理过了！');
      return;
    }
    // 获得 ./assets/i18n/ 并替换成 https://s3-ap-southeast-1.amazonaws.com/mod-mmsc-global-ph-dev/static/
    let dataText=data.replace('./assets/i18n/','https://s3-ap-southeast-1.amazonaws.com/mod-mmsc-global-ph-dev/static/');
    // 将修改后的文件写入源文件
    fs.writeFileSync(opath, dataText, 'utf-8');
    // 完成
    console.log('恭喜，main.js 修改完成！！！');
  }else{
    console.log('没有找到需要操作的 main.js 文件 文件！');
  }
}


// 开始处理 start
ergodic();


/*
  优点：
    一次运行，全部搞定。

  mac版本使用文档：
    1，找到 run.command 的路径：
        /Users/gaozhe/desktop/packHandle/run.command（例如）
    2，在终端输入：
        chmod 777 /Users/gaozhe/desktop/packHandle/run.command
    3，修改 
        run.command cd desktop/packHandle （例如）
    4，放好需要做的文件后，将可以用三种方式运行 run.js
      (0),.command 操作：双击 run.command 即可。
      (1),命令行：cd到在该目录下，输入 'node run.js',即可。
      (2),sublime: 使用 sublime 打开 run.js  ctrl+b 即可运行。
    5，若出错误，请仔细参考前 3 条。

  编辑于2017/11/11

*/